#include <iostream>

using namespace std;

const int a[19][7] = {{0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, 
					  {0, 1, 3, 5, 6, 8, 10}, {1, 2, 5, 6, 7, 10, 11}, {0, 0, 0, 0, 0, 0, 0}, {3, 5, 4, 8, 10, 9, 13}, {0, 0, 0, 0, 0, 0, 0}, 
					  {5, 6, 8, 10, 11, 13, 15}, {6, 7, 10, 11, 12, 15, 16}, {0, 0, 0, 0, 0, 0, 0}, {8, 10, 9, 13, 15, 14, 17}, {0, 0, 0, 0, 0, 0, 0}, 
					  {10, 11, 13, 15, 16, 17, 18}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}};

int main()
{
	string s;
	while (cin >> s)
	{
		if (s == "#")
			break;
		bool flag = true;
		for(int mask0 = 0; mask0 < (1 << 19); mask0++)
		{
			int mask1 = mask0;
			for(int i = 0; i < 7; i++)
			{
				int t = 0;
				for(int j = 0; j < 7; j++) {
					t = t | (((mask0 >> a[a[10][i]][j]) & 1) << j);
				}
				mask1 = mask1 | (1 << a[10][i]) & ((s[t] == '1') << a[10][i]);
			}
			
			int mask2 = mask1;
			
			for(int i = 0; i < 7; i++)
			{
				int t = 0;
				for(int j = 0; j < 7; j++) {
					t = t | (((mask1 >> a[a[10][i]][j]) & 1) << j);
				}
				mask2 = mask2 | (1 << a[10][i]) & ((s[t] == '1') << a[10][i]);
			}
			
			if (mask1 != mask2) {
				flag = false;
				break;
			}
			
		}
		if (flag)
		{
			cout << "yes\n";
		} else {
			cout << "no\n";
		}
	}
	return 0;
}